<?php

namespace App\Http\Middleware;

use Closure;

class CheckSession
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
		// 验证登录信息
		$data = $request -> except('_token');
		
		if( empty($data['name']) )
		{
			$this -> show_msg('请输入账号或者手机号');
		}
		if( empty($data['pass']) )
		{
			$this -> show_msg('请输入密码');
		}
		
		$user_info = DB::table('user')
						// 名字
						-> where( 'name','=',$data['name'] )
						// 电话
						-> orWhere('phone','=',$data['name'])
						// 密码
						-> where( 'pass','=',$data['pass'] )
						// 状态正常
						-> where( 'status','=','1' )
						-> first();
		// 验证 通过 
		if( $user_info )
		{
			// 获取用户ID
			$user_id = intval( $user_info->id ) ;
			// 1. 修改 登录时间
			$res = 	DB::table('user')
						->where( 'id','=',$user_id )
						->update(['lasttime'=>date('Y-m-d H:i:s',time())]);
			
			// if( $request -> has('rememberMe') )
			
			// 2. 是否 记住	
			if( $data['checkbox']=='true' )
			{
				// 记住我
				// 设置cookie 7天免登录
				\Cookie::queue( 'isLogin' , $user_id ,60*24*7 );
				// response('')->withCookie( cookie('name','laravel',1000) );

			}else
			{
				// 设置cookie 为空
				\Cookie::queue('isLogin','');
			}
			
			// 获取 用户信息
			$current_user = $this -> getUserName( $user_id );
			
			// 3. 设置session 用户ID
			Session::put('user_id',$user_id);
			// 设置session 用户名
			Session::put('user_name',$current_user->name ); 
			
			// if( empty( Session::get('next_url') ) ){}
			$this -> show_msg('验证成功');
			
		}else
		{
			// 验证 失败
			$this -> show_msg('请检查用户名或密码');
		}
        return $next($request);
    }
}
